package handlers

import (
	"encoding/json"
	"net/http"
	"time"
)

// IPInfo 定义返回的IP信息结构体
type IPInfo struct {
	Time int64  `json:"time"`
	IP   string `json:"ip"`
}

// VisitIPHandler 处理IP查询请求
func VisitIPHandler(w http.ResponseWriter, r *http.Request) {
	// 获取客户端IP地址
	// 优先获取X-Forwarded-For头，如果没有则使用RemoteAddr
	ip := r.Header.Get("X-Forwarded-For")
	if ip == "" {
		ip = r.RemoteAddr
	}

	// 创建响应数据
	ipInfo := IPInfo{
		Time: time.Now().Unix(),
		IP:   ip,
	}

	// 设置响应头为JSON
	w.Header().Set("Content-Type", "application/json")

	// 将数据编码为JSON并返回
	json.NewEncoder(w).Encode(ipInfo)
}
